home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CICA Windows Explosion!
/
The CICA Windows Explosion! - Disc 2.iso
/
misc
/
wt4w3ace.zip
/
WINTRAN.MST
/
WINTRAN.MST
Wrap
Text File
|
1994-12-15
|
24KB
|
820 lines
'**************************************************************************
'* MSSetup Word Translator for Windows
'**************************************************************************
'$DEFINE DEBUG '' Define for script development/debugging
''$DEFINE NORWEGIAN '' Norwegian version of the setup script
'$DEFINE ENGLISH '' English version of the setup script
''$DEFINE SERIAL_NUMBER '' Confirm correct serial number during installation
'' used only in the commercial version of Setup
'' Do not use if sending to USA.
''$DEFINE COMMER_VER '' Commercial version of the setup script
''$DEFINE DEMO_VER '' Demo version of the setup script
'$DEFINE SHAREWARE_VER '' Shareware version of the setup script
'$DEFINE EXP_VER
''$DEFINE NORMAL_VER
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'' Replace following strings to translate Setup messages to your language
Translator_Setup$ = "Word Translator for Windows v3.0 Setup"
'$IFDEF ENGLISH
Setup_Message$ = "Setup Message"
invoice$ = "Product & Ordering Information"
wordtran_name$ = "Word Translator 3.0"
'$IFDEF DEMO_VER
wordtran_name$ = "Word Translator 3.0 Demo version"
'$ENDIF
'$IFDEF SHAREWARE_VER
wordtran_name$ = "Word Translator 3.0 shareware version"
'$ENDIF
'$ENDIF ''ENGLISH
'$IFDEF NORWEGIAN
Setup_Message$ = "Setup Melding"
invoice$ = "Hvordan Bestille Word Translator"
wordtran_name$ = "Word Translator 3.0"
'$IFDEF DEMO_VER
wordtran_name$ = "Word Translator 3.0 Demo versjon"
'$ENDIF
'$ENDIF ''NORWEGIAN
''Dialog ID's
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST APPHELP = 900
CONST CUSTINST = 6200
CONST TOOBIG = 6300
CONST BADPATH = 6400
CONST EXTENDEDLIST_DICT = 3900
CONST EXTENDEDLIST_FONTS = 3901
CONST MULTILISTDICT = 5201
CONST MULTILISTFONT = 5202
CONST CDGETNAMEORG = 7500
CONST CDBADNAME = 7700
CONST CDCONFIRMINFO = 7300
CONST CDALREADYUSED = 7100
CONST BADSERIAL = 7900
CONST MANYBADSERIALS = 8000
CONST NOMOREINST = 8100
CONST CORUPTSOURCES = 8200
CONST DEMOINTRO = 8300
CONST CDNOCHOICES = 8400
CONST SHAREINTRO = 8500
''Bitmap ID
CONST LOGO = 1
''File Types
CONST APPFILES = 1
CONST DICTFILES = 2
CONST FONTFILES = 3
GLOBAL DEST$ ''Default destination directory.
GLOBAL WINDRIVE$ ''Windows drive letter.
''CustInst list symbol names
GLOBAL APPNEEDS$ ''Option list costs per drive
GLOBAL DICTNEEDS$
GLOBAL FONTNEEDS$
GLOBAL EXTRACOSTS$ ''List of extra costs to add per drive
GLOBAL BIGLIST$ ''List of option files cost calc results (boolean)
''Dialog list symbol names
GLOBAL CHECKSTATES$
GLOBAL STATUSTEXT$
GLOBAL DRIVETEXT$
GLOBAL ALLDICTLIST$ ''List of all keys from Dictionary section
GLOBAL ALLFONTLIST$ ''List of all keys from Fonts section
GLOBAL DICTLIST$ ''List selection from Dictionary EXTENDEDLIST_DICT dialog.
GLOBAL FONTLIST$ ''List selection from Fonts EXTENDEDLIST_FONTS dialog.
GLOBAL APPFILELIST$ ''List of all application files in the [AppFiles]
''section of wintran.inf
GLOBAL SPECIALLIST$ ''List of special information such as AdditonThreshold
''and MainDictionaryPath
DECLARE SUB AddOptFilesToCopyList (ftype%)
DECLARE SUB RecalcOptFiles (ftype%)
DECLARE SUB RecalcPath
DECLARE SUB SetDriveStatus
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION EliminatePath (szFile$) AS STRING
DECLARE FUNCTION FCreateFile LIB "mscuistf.dll" (szFileName$) AS INTEGER
DECLARE FUNCTION FCheck LIB "mscuistf.dll" (szSourceDir$) AS INTEGER
DECLARE FUNCTION FAddFontResource_HZ LIB "mscuistf.dll" (szFileName$, szFontName$) AS INTEGER
DECLARE FUNCTION FGetRegInfo_HZ LIB "mscuistf.dll" (szFileName$, szSymbolNumInstall$, szSymbolRegN$, szSymbolName$, szSymbolOrg$, bChange% ) AS INTEGER
DECLARE FUNCTION FSetRegInfo_HZ LIB "mscuistf.dll" (szFileName$, szName$, szOrg$) AS INTEGER
INIT:
CUIDLL$ = "mscuistf.dll" ''custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
SetBitmap CUIDLL$, LOGO
SetTitle Translator_Setup$
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "WINTRAN.INF"
END IF
ReadInfFile szInf$
WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
DEST$ = WINDRIVE$ + ":\WINTRAN"
'' DEST$ = "D:\WINTRAN"
''CustInst list symbols
CHECKSTATES$ = "CheckItemsState"
STATUSTEXT$ = "StatusItemsText"
DRIVETEXT$ = "DriveStatusText"
ALLDICTLIST$ = "DictListItemsIn"
ALLFONTLIST$ = "FontListItemsIn"
DICTLIST$ = "DictListItemsOut"
FONTLIST$ = "FontListItemsOut"
APPFILELIST$ = "AppFilesListItems"
SPECIALLIST$ = "SpecialListItems"
FOR i% = 1 TO 3 STEP 1
AddListItem CHECKSTATES$, "ON" '' check all (App, Dictionaries, Fonts)
NEXT i%
FOR i% = 1 TO 3 STEP 1
AddListItem STATUSTEXT$, ""
NEXT i%
FOR i% = 1 TO 7 STEP 1
AddListItem DRIVETEXT$, ""
NEXT i%
ReplaceListItem DRIVETEXT$, 7, DEST$
''Disk cost list symbols
APPNEEDS$ = "AppNeeds"
DICTNEEDS$ = "Opt1Needs"
FONTNEEDS$ = "Opt2Needs"
EXTRACOSTS$ = "ExtraCosts"
BIGLIST$ = "BigList"
FOR i% = 1 TO 3 STEP 1
AddListItem BIGLIST$, ""
NEXT i%
FOR i% = 1 TO 26 STEP 1
AddListItem EXTRACOSTS$, "0"
NEXT i%
''File Option Lists
MakeListFromSectionKeys ALLDICTLIST$, "Dictionaries"
MakeListFromSectionKeys ALLFONTLIST$, "Fonts"
MakeListFromSectionKeys DICTLIST$, "Dictionaries"
MakeListFromSectionKeys FONTLIST$, "Fonts"
MakeListFromSectionKeys APPFILELIST$, "AppFiles"
MakeListFromSectionKeys SPECIALLIST$, "Special"
RecalcPath
SetDriveStatus
'$IFDEF DEBUG
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
'$ENDIF ''DEBUG
'$IFDEF DEMO_VER
sz$ = UIStartDlg(CUIDLL$, DEMOINTRO, "FInfoDlgProc", APPHELP, HELPPROC$)
'$ENDIF ''DEMO_VER
'$IFDEF SHAREWARE_VER
sz$ = UIStartDlg(CUIDLL$, SHAREINTRO, "FInfoDlgProc", APPHELP, HELPPROC$)
'$ENDIF ''SHAREWARE_VER
numcustinst% = 0
CUSTINST:
sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
''Install only if it will fit.
''FOR i% = 1 TO 3 STEP 1
'' IF GetListItem(BIGLIST$, i%) <> "" THEN
'' GOSUB TOOBIG
'' GOTO CUSTINST
'' END IF
''NEXT i%
UIPop 1
GOTO INSTALL
ELSEIF sz$ = "PATH" THEN
GOTO GETPATH
ELSEIF sz$ = "CHK1" THEN
RecalcOptFiles APPFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK2" THEN
RecalcOptFiles DICTFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK3" THEN
RecalcOptFiles FONTFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "BTN2" THEN
GOTO DICTFILES
ELSEIF sz$ = "BTN3" THEN
GOTO FONTFILES
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO CUSTINST
ELSE
GOSUB ASKQUIT
GOTO CUSTINST
END IF
INSTALL:
'$IFDEF COMMER_VER
''$IFDEF EXP_VER
'' i% = FCheck(GetSymbolValue("STF_SRCDIR"))
'' IF i% = 0 THEN
'' END
'' END IF
''$ENDIF
REG$ = MakePath(GetSymbolValue("STF_SRCDIR"), "WT.INF")
IF numcustinst% = 0 THEN
i% = FGetRegInfo_HZ(REG$, "NumInstallations", "SerialNumber", "Name", "Company", 1)
ELSE
i% = FGetRegInfo_HZ(REG$, "NumInstallations", "SerialNumber", "Name", "Company", 0)
END IF
IF i% = 0 THEN
END
END IF
numcustinst% = numcustinst% + 1
regname$ = GetSymbolValue("Name")
regorg$ = GetSymbolValue("Company")
numinstalls$ = GetSymbolValue("NumInstallations")
serialnum$ = GetSymbolValue("SerialNumber")
IF numinstalls$ = "000" THEN
sz$ = UIStartDlg(CUIDLL$, NOMOREINST, "FInfo0DlgProc", 0, "")
END
END IF
AddListItem "ConfirmTextIn", ""
AddListItem "ConfirmTextIn", ""
regist% = 0
retries% = 2
IF regname$="" AND regorg$="" THEN ''unregistered, need to register
GRI:
sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
regname$ = GetSymbolValue("NameOut")
serialno$ = GetSymbolValue("SerialNo")
IF regname$ = "" THEN
sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
GOTO GRI
END IF
'$IFDEF SERIAL_NUMBER
IF serialnum$ <> serialno$ THEN
sz$ = UIStartDlg(CUIDLL$, BADSERIAL, "FInfo0DlgProc", 0, "")
IF retries% > 0 THEN
retries% = retries% - 1
GOTO GRI
ELSE
sz$ = UIStartDlg(CUIDLL$, MANYBADSERIALS, "FInfo0DlgProc", 0, "")
END
END IF
END IF
'$ENDIF
regorg$ = GetSymbolValue("OrgOut")
ReplaceListItem "ConfirmTextIn", 1, regname$
ReplaceListItem "ConfirmTextIn", 2, regorg$
sz$ = UIStartDlg(CUIDLL$, CDCONFIRMINFO, "FConfirmDlgProc", APPHELP, HELPPROC$)
IF sz$ = "BACK" THEN
retries% = 2
GOTO GRI
END IF
i% = FSetRegInfo_HZ(REG$, regname$, regorg$)
IF i% = 0 THEN
END
END IF
regist% = 1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GRI
ENDIF
ELSE
inf$ = MakePath(DEST$, "WT.INF")
IF EXISTS(inf$) THEN
i% = FGetRegInfo_HZ(REG$, NULL, NULL, "Name", "Company",0)
IF i% = 0 THEN
END
END IF
reginame$ = GetSymbolValue("Name")
regiorg$ = GetSymbolValue("Company")
IF regname$ <> reginame$ OR regorg$ <> regiorg$ THEN
GOTO WARNR
ENDIF
ELSE
WARNR:
ReplaceListItem "ConfirmTextIn", 1, regname$
ReplaceListItem "ConfirmTextIn", 2, regorg$
sz$ = UIStartDlg(CUIDLL$, CDALREADYUSED, "FConfirmDlgProc", APPHELP, HELPPROC$)
IF sz$ = "EXIT" THEN
GOSUB ASKQUIT
ENDIF
ENDIF
ENDIF
UIPopAll '' hide the two windows that got the name, co. and reg. no. info.
'' and verified the name and co.
'$IFDEF EXP_VER
ini2$ = MakePath(MID$(DEST$,1,3),"STAMP.WTW")
i% = FCreateFile (ini2$)
'$ENDIF
'$ENDIF ''COMMER_VER
ClearCopyList
AddOptFilesToCopyList APPFILES
AddOptFilesToCopyList DICTFILES
AddOptFilesToCopyList FONTFILES
CreateDir DEST$, cmoNone
CopyFilesInCopyList
numinstopts% = 0
''IF GetListItem(CHECKSTATES$, DICTFILES) = "ON" THEN
'$IFDEF EXP_VER
ini$ = MakePath(DEST$, "WT.INI")
'$ENDIF
'$IFDEF NORMAL_VER
ini$ = MakePath(GetWindowsDir, "WT.INI")
'$ENDIF
CreateIniKeyValue ini$, "General", "CurrentMode", "WordTranslation" , cmoOverwrite
CreateIniKeyValue ini$, "General", "InteractWith", "WordForWindows" , cmoNone
CreateIniKeyValue ini$, "General", "WordTranslatorHotkey", "Control + Shift" , cmoNone
CreateIniKeyValue ini$, "General", "SetupHotkey", "Alt + F7" , cmoNone
CreateIniKeyValue ini$, "General", "AccentHotkey", "RightAlt" , cmoNone
CreateIniKeyValue ini$, "General", "CancelSpeed", "0" , cmoNone
CreateIniKeyValue ini$, "General", "HideSpeedBar", "0" , cmoNone
RemoveIniSection ini$, "Dictionaries", cmoNone
IF GetListLength(SPECIALLIST$) > 0 THEN
special$ = GetListItem(SPECIALLIST$,1)
IF special$ <> "" THEN
CreateIniKeyValue ini$, "Dictionaries", "AdditionThreshold", special$ , cmoOverwrite
END IF
END IF
IF GetListLength(SPECIALLIST$) > 1 THEN
special$ = GetListItem(SPECIALLIST$,2)
IF special$ <> "" THEN
CreateIniKeyValue ini$, "Dictionaries", "PathToMainDictionaries", special$ , cmoOverwrite
END IF
END IF
IF regist% = 1 THEN
i% = FSetRegInfo_HZ(MakePath(DEST$, "WT.INF"), regname$, regorg$)
IF i% = 0 THEN
END
END IF
END IF
ini$ = ""
numinstopts% = numinstopts% + 1
''END IF
''IF GetListItem(CHECKSTATES$, FONTFILES) = "ON" THEN
n% = GetListLength(FONTLIST$)
FOR i% = 1 TO n% STEP 1
f$ = GetSectionKeyFilename("Fonts", GetListItem(FONTLIST$, i%))
r% = FAddFontResource_HZ(MakePath(DEST$, f$),GetListItem(FONTLIST$, i%))
NEXT i%
numinstopts% = numinstopts% + 1
''END IF
''IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
IF GetListLength(APPFILELIST$) > 0 THEN
CreateProgmanGroup "Word Translator", "", cmoNone
ShowProgmanGroup "Word Translator", 1, cmoNone
CreateProgmanItem "Word Translator", wordtran_name$, MakePath(DEST$,"wt.exe"), "", cmoOverwrite
CreateProgmanItem "Word Translator", "Word Translator Manual", "winhelp.exe "+MakePath(DEST$,"wt.hlp"), "", cmoOverwrite
CreateProgmanItem "Word Translator", invoice$, "write.exe "+MakePath(DEST$,"info.wri"), "", cmoOverwrite
CreateProgmanItem "Word Translator", "Read Me", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
if EXISTS(MakePath(DEST$, "CONVERT.EXE")) THEN
CreateProgmanItem "Word Translator", "Text Converter", MakePath(DEST$,"convert.exe"), "", cmoOverwrite
END IF
numinstopts% = numinstopts% + 1
END IF
''END IF
IF numinstopts% = 0 THEN
sz$ = UIStartDlg(CUIDLL$, CDNOCHOICES, "FInfo0DlgProc", 0, "")
GOTO CUSTINST
ENDIF
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
ERRQUIT:
sz$ = UIStartDlg(CUIDLL$, CORUPTSOURCES, "FInfo0DlgProc", 0, "")
END
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
olddest$ = DEST$
DEST$ = GetSymbolValue("EditTextOut")
''Validate new path.
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
''Truncate display if too long.
IF LEN(DEST$) > 23 THEN
ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
ELSE
ReplaceListItem DRIVETEXT$, 7, DEST$
END IF
''Recalc if path changed.
IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
RecalcPath
SetDriveStatus
END IF
olddest$ = ""
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO GETPATHL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETPATHL1
ELSE
UIPop 1
GOTO CUSTINST
END IF
DICTFILES:
DICTL1:
sz$ = UIStartDlg(CUIDLL$, MULTILISTDICT, "FDictMultiDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
RecalcOptFiles DICTFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO DICTL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO DICTL1
ELSE
UIPop 1
GOTO CUSTINST
END IF
FONTFILES:
FONTL1:
sz$ = UIStartDlg(CUIDLL$, MULTILISTFONT, "FFontMultiDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
RecalcOptFiles FONTFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO FONTL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO FONTL1
ELSE
UIPop 1
GOTO CUSTINST
END IF
TOOBIG:
sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO TOOBIG
END IF
UIPop 1
RETURN
BADPATH:
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO BADPATH
END IF
UIPop 1
RETURN
ASKQUIT:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
'**
'** Purpose:
'** Adds the specified option files to the copy list.
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** APPFILES, DICTFILES, FONTFILES
'** Returns:
'** none.
'*************************************************************************
SUB AddOptFilesToCopyList (ftype%) STATIC
''IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
SrcDir$ = GetSymbolValue("STF_SRCDIR")
IF ftype% = APPFILES THEN
AddSectionFilesToCopyList "AppFiles", SrcDir$, DEST$
ELSEIF ftype% = DICTFILES THEN
''dictlen% = GetListLength(DICTLIST$)
''FOR i%=1 TO dictlen% STEP 1
'' AddSectionKeyFileToCopyList "Dictionaries", GetListItem(DICTLIST$, i%), SrcDir$, DEST$
''NEXT i%
AddSectionFilesToCopyList "Dictionaries", SrcDir$, DEST$
ELSEIF ftype% = FONTFILES THEN
''fontlen% = GetListLength(FONTLIST$)
''FOR i%=1 TO fontlen% STEP 1
'' AddSectionKeyFileToCopyList "Fonts", GetListItem(FONTLIST$, i%), SrcDir$, DEST$
''NEXT i%
AddSectionFilesToCopyList "Fonts", SrcDir$, DEST$
END IF
SrcDir$ = ""
''END IF
END SUB
'**
'** Purpose:
'** Recalculates disk space for the given option files and sets
'** the status info symbol "StatusItemsText".
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** APPFILES, DICTFILES, FONTFILES
'** Returns:
'** none.
'*************************************************************************
SUB RecalcOptFiles (ftype%) STATIC
CursorSave% = ShowWaitCursor()
ClearCopyList
AddOptFilesToCopyList ftype%
fExtra% = 0
IF ftype% = APPFILES THEN
ListSym$ = APPNEEDS$
''IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
''Add extra cost to Windows drive for ini/progman, etc.
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
ReplaceListItem EXTRACOSTS$, ndrive%, "1"
fExtra% = 1
''END IF
ELSEIF ftype% = DICTFILES THEN
ListSym$ = DICTNEEDS$
ELSEIF ftype% = FONTFILES THEN
ListSym$ = FONTNEEDS$
END IF
StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
cost& = 0
FOR i% = 1 TO 26 STEP 1
cost& = cost& + VAL(GetListItem(ListSym$, i%))
NEXT i%
ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
IF StillNeed& > 0 THEN
ReplaceListItem BIGLIST$, ftype%, "YES"
ELSE
ReplaceListItem BIGLIST$, ftype%, ""
END IF
IF fExtra% THEN
ReplaceListItem EXTRACOSTS$, ndrive%, "0"
END IF
RestoreCursor CursorSave%
ListSym$ = ""
END SUB
'**
'** Purpose:
'** Recalculates disk space and sets option status info according
'** to the current destination path.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB RecalcPath STATIC
CursorSave% = ShowWaitCursor()
RecalcOptFiles APPFILES
RecalcOptFiles DICTFILES
RecalcOptFiles FONTFILES
RestoreCursor CursorSave%
END SUB
'**
'** Purpose:
'** Sets drive status info according to latest disk space calcs.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB SetDriveStatus STATIC
drive$ = MID$(DEST$, 1, 1)
ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(DICTNEEDS$, ndrive%)) + VAL(GetListItem(FONTNEEDS$, ndrive%))
free& = GetFreeSpaceForDrive(drive$)
ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
IF drive$ = WINDRIVE$ THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
cost& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(DICTNEEDS$, ndrive%)) + VAL(GetListItem(FONTNEEDS$, ndrive%))
IF cost& = 0 THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
free& = GetFreeSpaceForDrive(WINDRIVE$)
ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
END IF
END IF
END SUB
'**
'** Purpose:
'** Appends a file name to the end of a directory path,
'** inserting a backslash character as needed.
'** Arguments:
'** szDir$ - full directory path (with optional ending "\")
'** szFile$ - filename to append to directory
'** Returns:
'** Resulting fully qualified path name.
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = szDir$ + szFile$
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION
'**
'** Purpose:
'** Eliminates the path from a filename so that the pure
'** filename is returned.
'**
'** Arguments:
'** szFile$ - filename with a path in it
'** Returns:
'** Pure filename without the path in it.
'*************************************************************************
FUNCTION EliminatePath (szFile$) STATIC AS STRING
iLen% = LEN(szFile$)
FOR iIndex% = iLen% TO 1 STEP -1
IF MID$(szFile$,iIndex%,1) = "\" THEN
EliminatePath = MID$(szFile$,iIndex%+1,iLen%-iIndex%)
iIndex% = 1
END IF
NEXT iIndex%
END FUNCTION